home *** CD-ROM | disk | FTP | other *** search
- /****************** LISTING 1 - ipc.h ******************/
-
- #include <stdio.h>
- #include <descrip.h> /* Pass-by-descriptor structures */
- #include <ssdef.h> /* System services definitions */
- #include <psldef.h> /* Processor status longword def's */
- #include <iodef.h> /* I/O services definitions */
-
- #define ADDMBX 0 /* Add server-client mailbox */
- #define DELMBX 1 /* Delete server-client mailbox */
- #define PASSTHRU 2 /* Pass message to other client */
- #define BROADCAST 3 /* Broadcast to all clients */
- #define SHUTDOWN 4 /* Shutdown */
-
- #define MAX_NO_PROCESS 10 /* maximum clients */
- #define QSIZE (2 * MAX_NO_PROCESS) /* Rcv queue size */
- #define RCVEF 1 /* Receive event flag */
-
- /*====== structure for final I/O completion (QIO) ========*/
-
- typedef struct {
- USHORT status; /* completion status */
- USHORT bytcnt; /* bytes transferred */
- ULONG sndPID; /* sender's PID */
- } IO_STATUS_BLOCK;
-
- /*================ Message buffer ========================*/
-
- typedef union {
- int array[100];
- char text[100];
- } MSG;
-
- typedef struct {
- int cmdtyp; /* server command type */
- int msgtyp; /* message type */
- int xmt_prcnum; /* sender's process number */
- int rcv_prcnum; /* receiver's process number */
- MSG msg; /* msg buffer: int or text */
- } MSGBUF;
-
- typedef struct {
- IO_STATUS_BLOCK iosb;
- MSGBUF msg;
- } RCVBUF;
-
- /*================= Process buffer =======================*/
-
- typedef struct {
- ULONG prcnum; /* process number */
- USHORT mbxid; /* mailbox id */
- struct CLIENT *link; /* next in list */
- } CLIENT;
-